package com.cskaoyan.service.impl;

import com.cskaoyan.bean.MarketRegion;
import com.cskaoyan.bean.chenfeng.vo.ProvinceVo;
import com.cskaoyan.bean.param.CommonData;
import com.cskaoyan.mapper.MarketRegionMapper;
import com.cskaoyan.service.RegionService;
import com.cskaoyan.util.chenfeng.Constant;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 行政区域Service接口实现类
 * 后台系统 → 商场管理 → 行政区域
 * 用于处理行政区域的相关业务
 *
 * @author Chen_Feng
 * @since 2022/06/25 21:35
 */
@Service
@Transactional
public class RegionServiceImpl implements RegionService {

    @Autowired
    MarketRegionMapper marketRegionMapper;

    /**
     * 从 market_region 数据库中获取所有行政区域的数据信息
     * 并将获取到的信息封装成一个CommonData数据对象进行返回
     *
     * @return com.cskaoyan.bean.param.CommonData<com.cskaoyan.bean.MarketRegion>
     * @author Chen_Feng
     * @since 2022/06/25 21:38
     */
    @Override
    public CommonData<MarketRegion> getAllRegion() {

        /*
        // 创建一个样本对象（暂时不知道这个中文名叫什么）
        MarketRegionExample marketRegionExample = new MarketRegionExample();

        // 首先查找省级区域信息
        marketRegionExample.createCriteria().andTypeEqualTo((byte) 1);
        List<MarketRegion> provincialList = marketRegionMapper.selectByExample(marketRegionExample);

        // 查询分页信息
        PageInfo<MarketRegion> pageInfo = new PageInfo<>(list);

        // 封装数据以返回
        return CommonData.data(pageInfo);
        */

        // 调用mapper查询省级行政区域，并查询其下的市级以及区县级
        List<ProvinceVo> list = marketRegionMapper.selectAllRegionByProvince(Constant.REGION_TYPE_PROVINCE);

        // 查询分页信息
        PageInfo<ProvinceVo> pageInfo = new PageInfo<>(list);

        // 封装数据以返回
        return CommonData.data(pageInfo);
    }
}
